package com.wzcl.app.controller;

import com.wzcl.app.model.common.RVO;
import com.wzcl.app.model.dto.UserTopUpDto;
import com.wzcl.app.service.UserTopUpService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;

/**
 * @author beingven
 * @Description 用户学币管理
 * @createTime 2020年11月20日 12:46:00
 */
@RestController
@RequestMapping("/topUp")
@Api(value = "用户学币管理controller", tags = {"学币管理接口"})
public class UserTopUpController {
    @Resource
    private UserTopUpService userTopUpService;

    /**
     * 用户消费学币
     * @param userTopUpDto 包含支付信息的dto
     * @return 包含返回剩余学币信息的RVO
     */
    @PutMapping("/consume")
    @ApiOperation("用户消费学币")
    public RVO userConsume(@RequestBody UserTopUpDto userTopUpDto) throws Exception {
        return userTopUpService.userConsume(userTopUpDto.getOrderNumber(), userTopUpDto.getMoney(), userTopUpDto.getCommodityIds());
    }

    /**
     * 用户充值学币
     * @param productId 充值价格表productId
     * @return 包含返回剩余学币信息的RVO
     */
    @PostMapping("/add")
    @ApiOperation("用户充值学币")
    public RVO userTopUp(@RequestParam String productId) {
        return userTopUpService.userTopUp(productId);
    }

    /**
     * 查询当前用户学币
     * @return 包含返回剩余学币信息的RVO
     */
    @GetMapping("/search")
    @ApiOperation("用户查询学币")
    public RVO findAllByUserPhone() {
        return userTopUpService.findAllByUserPhone();
    }


}